﻿namespace TestTool.Proxies.Onvif
{
    using System;
    using System.CodeDom.Compiler;
    using System.ComponentModel;
    using System.Diagnostics;
    using System.Xml;
    using System.Xml.Serialization;

    [Serializable, XmlType(Namespace="http://www.onvif.org/ver10/schema"), GeneratedCode("svcutil", "3.0.4506.2152"), DebuggerStepThrough, DesignerCategory("code")]
    public class CertificateInformation
    {
        private XmlAttribute[] anyAttrField;
        private string certificateIDField;
        private CertificateUsage extendedKeyUsageField;
        private CertificateInformationExtension extensionField;
        private string issuerDNField;
        private int keyLengthField;
        private bool keyLengthFieldSpecified;
        private CertificateUsage keyUsageField;
        private string serialNumField;
        private string signatureAlgorithmField;
        private string subjectDNField;
        private DateTimeRange validityField;
        private string versionField;

        [XmlAnyAttribute]
        public XmlAttribute[] AnyAttr
        {
            get
            {
                return this.anyAttrField;
            }
            set
            {
                this.anyAttrField = value;
            }
        }

        [XmlElement(DataType="token", Order=0)]
        public string CertificateID
        {
            get
            {
                return this.certificateIDField;
            }
            set
            {
                this.certificateIDField = value;
            }
        }

        [XmlElement(Order=4)]
        public CertificateUsage ExtendedKeyUsage
        {
            get
            {
                return this.extendedKeyUsageField;
            }
            set
            {
                this.extendedKeyUsageField = value;
            }
        }

        [XmlElement(Order=10)]
        public CertificateInformationExtension Extension
        {
            get
            {
                return this.extensionField;
            }
            set
            {
                this.extensionField = value;
            }
        }

        [XmlElement(Order=1)]
        public string IssuerDN
        {
            get
            {
                return this.issuerDNField;
            }
            set
            {
                this.issuerDNField = value;
            }
        }

        [XmlElement(Order=5)]
        public int KeyLength
        {
            get
            {
                return this.keyLengthField;
            }
            set
            {
                this.keyLengthField = value;
            }
        }

        [XmlIgnore]
        public bool KeyLengthSpecified
        {
            get
            {
                return this.keyLengthFieldSpecified;
            }
            set
            {
                this.keyLengthFieldSpecified = value;
            }
        }

        [XmlElement(Order=3)]
        public CertificateUsage KeyUsage
        {
            get
            {
                return this.keyUsageField;
            }
            set
            {
                this.keyUsageField = value;
            }
        }

        [XmlElement(Order=7)]
        public string SerialNum
        {
            get
            {
                return this.serialNumField;
            }
            set
            {
                this.serialNumField = value;
            }
        }

        [XmlElement(Order=8)]
        public string SignatureAlgorithm
        {
            get
            {
                return this.signatureAlgorithmField;
            }
            set
            {
                this.signatureAlgorithmField = value;
            }
        }

        [XmlElement(Order=2)]
        public string SubjectDN
        {
            get
            {
                return this.subjectDNField;
            }
            set
            {
                this.subjectDNField = value;
            }
        }

        [XmlElement(Order=9)]
        public DateTimeRange Validity
        {
            get
            {
                return this.validityField;
            }
            set
            {
                this.validityField = value;
            }
        }

        [XmlElement(Order=6)]
        public string Version
        {
            get
            {
                return this.versionField;
            }
            set
            {
                this.versionField = value;
            }
        }
    }
}

